/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package transervfx.Logica;

import java.util.Collection;
import java.util.List;
import javafx.collections.ObservableList;
import transervfx.Dato.DAO.PaisDAO;
import transervfx.Dato.Entidad.Localidad;
import transervfx.Dato.Entidad.Pais;
import transervfx.Dato.Entidad.Provincia;
import transervfx.Dato.Entidad.ZonaRegional;




/**
 * Gestiona el usuario del sistema.
 */
public class GestorPais {
 private static GestorPais INSTANCE = null;

  /**
     *  Crea el GestorUsuario
     */
    private GestorPais() {
    }

    /**
     * creador sincronizado para protegerse de posibles problemas  multi-hilo
     * otra prueba para evitar instanciación múltiple
     */
    private synchronized static void createInstance() {
        if (INSTANCE == null) {
            INSTANCE = new GestorPais();
        }
    }

    public static GestorPais getInstance() {
        if (INSTANCE == null) {
            createInstance();
        }
        return INSTANCE;
    }

    public List<Pais> paises() {
        return PaisDAO.getInstance().findAll();
    }

    public List<Provincia> provincias(Pais newValue) {
        return PaisDAO.getInstance().findByProvincias(newValue);
    }

    public List<Localidad> localidades(Provincia newValue) {
         return PaisDAO.getInstance().findByLocalidades(newValue);
    }

    public Localidad buscarLocalidad(ObservableList<Localidad> dataSourceLocalidad,String nombreLocalidad) {
        for(Localidad l: dataSourceLocalidad){
          if(  l.getNombre().equals(nombreLocalidad))
              return l;
        }
        return null;
    
    }

    public List<ZonaRegional> zonas(Localidad newValue) {
          return PaisDAO.getInstance().findByZonas(newValue);
    }

   
}
